1. Field of the Invention
This invention relates generally to computer game controllers and particularly to controllers for generating control data indicating the status of an input device.
2. Description of the Related Art
Conventionally, a computer game is responsive to a command received from a control device such as a joystick, a throttle, push buttons or other control mechanism operated by a user. An interface circuit is coupled to the control device to covert the command to control data for use by the computer game software. The interface circuit generally resides on an electronic circuit card such as a computer motherboard, a game controller card, a multimedia sound card or a PCMCIA (Personal Computer Memory Card International Association) card. These electronic circuit cards conventionally have an input port (a game port) for receiving control signals from the externally located control device. Industry standards have developed specifying the input port configuration. One industry standard port in particular, the IBM standard game port established by International Business Machines, Inc. of Armonk, New York (IBM) is widely used by many computer games and external control devices and therefore it is desirable to maintain compatibility with the IBM standard game port. The IBM standard game port has several digital inputs and several resistance-sensing inputs.
FIG. 1 is a schematic diagram of one conventional game control system 100 compatible with the resistance sensing-input of a conventional game port. Conventional control system 100 has an external input device 101 and a game card 108 residing internal to a computer. Conventional input device 101 has a control mechanism 107 such as a joystick, a switch, a push-button, a throttle or other input device. Input device 101 additionally has a variable resistance device 106 for producing a variable resistance corresponding to the position or status of control mechanism 107.
When conventional input device 101 is coupled to the resistance-sensing input of a conventional game card 108, a game program retrieves the status of control mechanism 107 by writing a command to interface circuit 102 and by then monitoring a status signal 109 for a state change. The time duration required for the state change corresponds to the status of control mechanism 107. Upon receiving a write command, interface circuit 102 uses a status circuit 105 to set status signal 109 to a first state and to allow capacitor 104 to charge. When capacitor 104 is charged to a predetermined threshold, status circuit 105 resets status signal 109 to a second state (the initial status) and discharges capacitor 104. Thus, a game program derives control information by monitoring the charging time of capacitor 104 using status circuit 105. FIG. 2 illustrates a conventional capacitor charging waveform 200 corresponding to the voltage across capacitor 104. A faster charging time indicates a smaller resistance value associated with variable resistance device 106 and in turn corresponds to the position or status of control mechanism 107.
Because the charging of capacitor 104 can take up to 2 milliseconds, determining the status of control mechanism 107 takes a long time as compared to the instruction cycle of the computer. There is an additional drawback in that the computer must monitor status signal 109 with a sufficiently high frequency in order to achieve a reasonable accuracy in measurement of the period of time taken to charge capacitor 104. The monitoring requirement makes it difficult for the computer to be sufficiently responsive to other devices or other tasks while running a game program.
The conventional resistance sensing-circuit has a further drawback of limited accuracy. In accordance with some conventional standards, the resistance-sensing input may have up to a 10% error due to the error tolerances of the resistor (5% error tolerance) and capacitor (5% error tolerance) circuit components. Additional accuracy problems are presented by computers having different operating speeds and thus require software to have calibrating routines to compensate for these operating speed differences. Additionally, conventional game control circuits have no latching or interrupt circuit to hold the signal status or to inform the computer that there exists a change in the signal status, hence the controller accuracy depends on how frequently the signal line is read.
Thus, there is a need for a computer game control device and method having improved speed and accuracy but that is also back-compatible the resistance-sensing inputs of conventional game cards.